package com.whfc.fuum.dao;


import com.whfc.fuum.dto.WxUserDTO;
import com.whfc.fuum.entity.WxUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface WxUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(WxUser record);

    int insertSelective(WxUser record);

    WxUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(WxUser record);

    int updateByPrimaryKey(WxUser record);

    /**
     * 根据openId查询微信用户
     *
     * @param openId
     * @return
     */
    WxUser selectByOpenId(@Param("openId") String openId);

    /**
     * 根据手机号查询
     *
     * @param appType
     * @param phone
     * @return
     */
    WxUser selectByAppTypeAndPhone(@Param("appType") Integer appType, @Param("phone") String phone);

    /**
     * 根据手机号查询微信用户
     *
     * @param phone
     * @return
     */
    List<WxUser> selectByPhone(@Param("phone") String phone);

    /**
     * 根据unionId查询
     *
     * @param unionId
     * @return
     */
    WxUser selectPhoneByUnionId(@Param("unionId") String unionId);

    /**
     * 插入 或 更新
     *
     * @param record
     * @return
     */
    int insertOrUpdate(WxUser record);

    /**
     * 查找微信用户
     *
     * @param keyword
     * @param appType
     * @param startDate
     * @param endDate
     * @return
     */
    List<WxUserDTO> selectWxUsers(@Param("keyword") String keyword,
                                  @Param("appType") Integer appType,
                                  @Param("startDate") Date startDate,
                                  @Param("endDate") Date endDate);

}